﻿using Colover.Enums;
using Colover.Infrastructure;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Colover.Models
{
    public partial class GiftInfo : NotificationObject
    {
        public GiftInfo() { }

        #region Fields
        private int id;
        private string guid = new Guid().ToString();
        private string title;
        private int categoryId = 0;
        private string description;
        private double marketprice = 0.0;
        private double saleprice = 0.0;
        private GiftTargetValue target = GiftTargetValue.Both;
        private string url;
        private string saler;
        private int favCount = 0;
        private int viewCount = 0;
        private GiftStatusValue status = GiftStatusValue.Moderate;
        private bool showToStranger = true;
        private string photo;
        #endregion

        #region Properties
        public int Id
        {
            get { return id; }
            set
            {
                id = value;
                RaisePropertyChanged(() => Id);
            }
        }

        public string Guid
        {
            get { return guid; }
            set
            {
                guid = value;
                RaisePropertyChanged(() => Guid);
            }
        }

        public string Title
        {
            get { return title; }
            set
            {
                title = value;
                RaisePropertyChanged(() => Title);
            }
        }

        public int CategoryId
        {
            get { return categoryId; }
            set
            {
                categoryId = value;
                RaisePropertyChanged(() => CategoryId);
            }
        }

        public string Description
        {
            get { return description; }
            set
            {
                description = value;
                RaisePropertyChanged(() => Description);
            }
        }

        public double MarketPrice
        {
            get { return marketprice; }
            set
            {
                marketprice = value;
                RaisePropertyChanged(() => MarketPrice);
            }
        }

        public double SalePrice
        {
            get { return saleprice; }
            set
            {
                saleprice = value;
                RaisePropertyChanged(() => SalePrice);
            }
        }

        public GiftTargetValue Target
        {
            get { return target; }
            set
            {
                target = value;
                RaisePropertyChanged(() => Target);
            }
        }

        public string Url
        {
            get { return url; }
            set
            {
                url = value;
                RaisePropertyChanged(() => Url);
            }
        }

        public string Saler
        {
            get { return saler; }
            set
            {
                saler = value;
                RaisePropertyChanged(() => Saler);
            }
        }

        public int FavCount
        {
            get { return favCount; }
            set
            {
                favCount = value;
                RaisePropertyChanged(() => FavCount);
            }
        }

        public int ViewCount
        {
            get { return viewCount; }
            set
            {
                viewCount = value;
                RaisePropertyChanged(() => ViewCount);
            }
        }

        public GiftStatusValue Status
        {
            get { return status; }
            set
            {
                status = value;
                RaisePropertyChanged(() => Status);
            }
        }

        public bool ShowToStranger
        {
            get { return showToStranger; }
            set
            {
                showToStranger = value;
                RaisePropertyChanged(() => ShowToStranger);
            }
        }

        public string Photo
        {
            get { return photo; }
            set
            {
                photo = value;
                RaisePropertyChanged(() => Photo);
            }
        }
        #endregion
    }
}
